package com.epalmpay.service.management;

import java.util.List;

import com.epalmpay.dto.bonus.BonusAdjustbatchInDTO;
import com.epalmpay.dto.system.UserInDTO;
import com.epalmpay.dto.system.UserOutDTO;
import com.epalmpay.entity.Userbase;

public interface IUserService {
	
	

	/**登录判断
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<Userbase> getUserByNameAndPwd(Userbase user)throws Exception;
	
	
	/**通过用户ID获取用户信息和角色信息
	 * @param USER_ID
	 * @return
	 * @throws Exception
	 */
	public Userbase getUserAndRoleById(Long userId) throws Exception;
	
	
	/**列出某角色下的所有用户
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<Userbase> listAllUserByRoldId(String roleId) throws Exception;
	
	

	/**  大商户 用户列表
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public List<Userbase> listUsers(Userbase user)throws Exception;
	
	
	/**  大商户 用户列表
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public List<Userbase> listZfUsers(Userbase user)throws Exception;
	
	/**数据校验
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public Userbase has(Userbase user)throws Exception;
	
	
	
	/**通过id获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public Userbase findById(Userbase user)throws Exception;
	
	
	/**通过用户名称获取数据
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public Userbase findByUsername(String userName)throws Exception;
	
	/**修改用户
	 * @param pd
	 * @throws Exception
	 */
	public void editUser(Userbase user)throws Exception;
	
	
	
	/**保存用户
	 * @param user
	 * @throws Exception
	 */
	public void saveU(Userbase user)throws Exception;
	
	/**删除用户
	 * @param user
	 * @throws Exception
	 */
	public void deleteU(Userbase user) throws Exception;
	
	/***
	 * 查询销售用户列表
	 * @return
	 * @throws Exception
	 */
	public List<UserOutDTO> getDevelopeUserList() throws Exception;


	//修改会员登入密码
	public void updateLoginPassword(Userbase member,String url)throws Exception;;
	
	
	
	/**通过用户ID获取用户信息和角色信息
	 * @param userIn
	 * @return
	 * @throws Exception
	 */
	public UserOutDTO shopOrAgent(UserInDTO userIn) throws Exception;


    List<Userbase> queryOperatorList(BonusAdjustbatchInDTO bonusAdjustbatchInDTO)throws Exception;;


	UserOutDTO queryLoginNameByPhoneAndName(UserInDTO userInDTO)throws Exception;

	UserOutDTO queryDataByNameAndPhone(UserInDTO userInDTO)throws Exception;

    int ifHas(Userbase user)throws Exception;

    void updateStatus(Userbase userbase);

    UserOutDTO queryGroupOrAgentInfo(UserInDTO userInDTO)throws Exception;

    void updateUserInfo(UserInDTO userInDTO)throws Exception;
}
